
package PL.practica1;

import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.io.InputStreamReader;
import java.io.PrintWriter;


public class prueba {
	
	public static Invitacion leerFicheroXML () {
		Invitacion i = new Invitacion();
		
        try{
            // Abrimos el archivo
            FileInputStream fstream = new FileInputStream("invitation.xml");
            // Creamos el objeto de entrada
            DataInputStream entrada = new DataInputStream(fstream);
            // Creamos el Buffer de Lectura
            BufferedReader buffer = new BufferedReader(new InputStreamReader(entrada));

            String texto = "";
            String aux = "";
            aux = buffer.readLine();
            while (aux != null) {
                texto += aux + " ";
                aux = buffer.readLine();
            }
            
            int inicio;
            int fin;
            
            inicio = texto.indexOf("<front>");
            fin = texto.indexOf("</front>");
            i.getFront().rellenarFront(texto.substring(inicio, fin));
            
            
            inicio = texto.indexOf("<body>");
            fin = texto.indexOf("</body>");
            i.getBody().rellenarBody(texto.substring(inicio, fin));
            
            
            inicio = texto.indexOf("<back>");
            fin = texto.indexOf("</back>");
            i.getBack().rellenarBack(texto.substring(inicio, fin));
            
            // Cerramos el archivo
            entrada.close();
        }catch (Exception e){ //Catch de excepciones
            System.err.println("Ocurrio un error: " + e.getMessage());
        }
        
        return i;
	}
	
	
	public static void escribirFicheroHTML(Invitacion i) {
	        FileWriter fichero = null;
	        PrintWriter pw = null;
	        try
	        {
	            fichero = new FileWriter("invitation.html");
	            pw = new PrintWriter(fichero);

	            //Escribir cabecera
	            pw.println("<HTML>");
	            pw.println("<HEAD>");
	            pw.println("<TITLE> Invitation (sgmlpl/CSS formatting) </TITLE>");
	            pw.println("<LINK href=\"invit.css\" rel=\"style-sheet\" type=\"text/css\">");
	            pw.println("<!-- 24 August 1998 mg -->");
	            pw.println("</HEAD>");
	            pw.println("<BODY>");
	            pw.println("<H1><span style=\"color: blue;\">INVITATION</H1>");
	            
	            //Escribir front
	            i.escribirFront(pw);
	            
	            //Escribir body
	            i.escribirBody(pw);
	            
	            //Escribir back
	            i.escribirBack(pw);
	            
	            //Escribir final
	            pw.println("</BODY>");
	            pw.println("</HTML>");

	        } catch (Exception e) {
	            e.printStackTrace();
	        } finally {
	           try {
	           // Nuevamente aprovechamos el finally para 
	           // asegurarnos que se cierra el fichero.
	           if (null != fichero)
	              fichero.close();
	           } catch (Exception e2) {
	              e2.printStackTrace();
	           }
	        }
	}


    public static void main(String args[]) {
		Invitacion i = new Invitacion();
		i = leerFicheroXML();
		escribirFicheroHTML(i);
    }
}
